package lu.med.praxiswahl.wahlumed.client.lieferanten;

import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;

import lu.med.praxiswahl.wahlumed.client.utilities.UniCode;
import lu.med.praxiswahl.wahlumed.client.wclient.Main;


/**
 * 
 * @author Lars Holger Roth
 */
@SuppressWarnings("serial")
public class LieferantenPanel extends JPanel implements ActionListener
{
    private LieferantenTableModel model;
    private LieferantenTable table;
    private Main dataManager;

    public LieferantenPanel(Main dataManager)
    {
	super(new BorderLayout());
	this.dataManager = dataManager;
	// Erstellt das Datenmodel
	model = new LieferantenTableModel(dataManager);
	table = new LieferantenTable(model);
	JScrollPane scrollPane = new JScrollPane(table);
	this.add(scrollPane, BorderLayout.CENTER);
	JPanel buttonPanel = new JPanel(new GridLayout(2, 0));
	JButton newDatasetButton = new JButton("Neuer Artikel");
	JButton newDatasetFromButton = new JButton("Kopie erstellen");
	JButton dropButton = new JButton("L" + UniCode.getoe() + "schen");
	JButton usedButton = new JButton("Depot Ausgang");
	JButton curButton = new JButton("Aktualisieren");
	JButton doneButton = new JButton("Depot Eingang");
	JButton tvaView = new JButton("TVA-Nummer");

	JButton sortiertArtikel, sortiertLieferant, sortiertLieferdatum, sortiertBestelldatum, sortiertBestand, sortiertNummer;
	sortiertArtikel = new JButton("Artikel");
	sortiertLieferant = new JButton("Lieferant");
	sortiertLieferdatum = new JButton("Lieferdatum");
	sortiertBestelldatum = new JButton("Bestelldatum");
	sortiertBestand = new JButton("Bestand");
	sortiertNummer = new JButton("Nummer");

	buttonPanel.add(new JLabel("Sortierung nach"));
	buttonPanel.add(sortiertArtikel);
	buttonPanel.add(sortiertLieferant);
	buttonPanel.add(sortiertLieferdatum);
	buttonPanel.add(sortiertBestelldatum);
	buttonPanel.add(sortiertBestand);
	buttonPanel.add(new JLabel("Suchen nach"));
	buttonPanel.add(sortiertNummer);

	buttonPanel.add(usedButton);
	buttonPanel.add(doneButton);
	buttonPanel.add(newDatasetButton);
	buttonPanel.add(newDatasetFromButton);
	buttonPanel.add(dropButton);
	buttonPanel.add(curButton);
	buttonPanel.add(tvaView);
	buttonPanel.add(new JLabel(""));

	newDatasetButton
		.addActionListener(new LieferantenNewDatasetActionListener(
			dataManager, model));
	newDatasetFromButton
		.addActionListener(new LieferantenNewDatasetFromActionListener(
			dataManager, model));
	curButton
		.addActionListener(new LieferantenRefreshActionListener(model));
	dropButton
		.addActionListener(new LieferantenDeleteActionListener(model));
	usedButton.addActionListener(new LieferantenUsedActionListener(model));
	sortiertArtikel.addActionListener(this);
	sortiertLieferant.addActionListener(this);
	sortiertLieferdatum.addActionListener(this);
	sortiertBestelldatum.addActionListener(this);
	sortiertBestand.addActionListener(this);
	sortiertNummer.addActionListener(this);
	tvaView.addActionListener(this);
	doneButton.addActionListener(this);
	this.add(buttonPanel, BorderLayout.NORTH);
    }

    public void actionPerformed(ActionEvent e)
    {
	if (e.getActionCommand().equals("Artikel"))
	{
	    model.transferDataFromDatabase();
	}
	if (e.getActionCommand().equals("Lieferant"))
	{
	    model.transferDataFromDatabaseByLieferant();
	}
	if (e.getActionCommand().equals("Lieferdatum"))
	{
	    model.transferDataFromDatabaseByLieferdatum();
	}

	if (e.getActionCommand().equals("Bestelldatum"))
	{
	    model.transferDataFromDatabaseByBestelldatum();
	}

	if (e.getActionCommand().equals("Bestand"))
	{
	    model.transferDataFromDatabaseByBestand();
	}
	if (e.getActionCommand().equals("Nummer"))
	{
	    model.transferDataFromDatabaseByNumber();
	}
	if (e.getActionCommand().equals("TVA-Nummer"))
	{
	    JOptionPane.showMessageDialog(dataManager, "LU22776817");
	}
	if (e.getActionCommand().equals("Depot Eingang"))
	{
	    model.done();
	}
    }

}
